Currently, application programming interfaces (APIs) are controlled by service providers who expose APIs for their services. These APIs are slow to evolve (it is up to the service provider to decide whether to add a new feature or make a change), and typically do not suit any particular application (“app”) developer's needs. Today, developers create client-side libraries which allow the developers to more easily consume the APIs (i.e., make the existing APIs more friendly to work with); however, these libraries may not be broadly shared, are often tied to one programming language, and are hard to find (e.g., not bundled with the API). This results in an inconsistent user experience. The library approach also suffers from an inconsistent and ad hoc approach to updates.